// home模块专用小仓库
//任何的小仓库:state、mutations、actions、getters 

import { reqBannnerList, reqCategory, reqFloorList } from '@/api'

// 存储数据
let state = {
    //商品分类的数据,仓库里面数据起始数值不要瞎写【服务器返回的是啥】
    category: [],
    // 首页轮播图的数据
    bannerList: [],
    // 楼层floor的数据
    floorList: []

};
// 修改仓库数据
let mutations = {
    GETCATEGORY(state, category) {
        state.category = category;

        // 打印测试一下
        // console.log(state.category)
    },

    GETBANNERLIST(state, bannerList) {
        state.bannerList = bannerList;

        // console.log('mutation修改了数据')

    },

    GETFLOORLIST(state, floorList) {

        state.floorList = floorList;
    }
};
// 书写业务逻辑 if或者异步语句
let actions = {
    //商品分类的actions
    //actions地盘:可不可以书写异步语句
    async getCategoty({ state, dispath, commit }) {

        //获取服务器的数据,存储在vuex仓库中
        //reqCategory函数执行,返回的是Promise对象【pending、成功、失败】
        //await 等待成功的结果
        let result = await reqCategory();

        if (result.code == 200) {
            commit('GETCATEGORY', result.data)
        }
    },


    // 获取banner图的action
    async getBannerList({ commit, state, dispath }) {
        // 获取首页数据
        let result = await reqBannnerList();
        if (result.code == 200) {
            commit('GETBANNERLIST', result.data)
        }
    },


    // 获取floor中的数据
    async getFloorList({ commit, state, dispath }) {
        // 获取floor中的数据
        let result = await reqFloorList();
        if (result.code == 200) {
            commit('GETFLOORLIST', result.data)
        }
    }



};
// 计算属性
let getters = {};


// 对外暴露一个对象
export default {
    state,
    mutations,
    actions,
    getters
}